package server.rest;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import javax.servlet.http.HttpServletResponse;

@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.METHOD })
public @interface Rest
{
    String schema();

    String[] methods() default "";

    HttpMethod method() default HttpMethod.GET;

    boolean internal() default true;

    boolean debug() default false;

    boolean deprecated() default false;

    ContentType requestContentType() default ContentType.USER;

    ContentType responseContentType() default ContentType.USER;

    String description() default "";

    String heading() default "";

    String[] requestParameters() default "";

    String[] responseParameters() default "";

    String[] urlParameters() default "";

    int[] statusCodes() default { HttpServletResponse.SC_OK };
    
    SessionType sessionType() default SessionType.NONE;
    
    String appSchame() default "";
}
